package com.wxg.jfinal.generator;

import javax.sql.DataSource;

import com.jfinal.kit.PathKit;
import com.jfinal.kit.Prop;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.activerecord.generator.Generator;
import com.jfinal.plugin.c3p0.C3p0Plugin;

public class MyGenerator {

	public static DataSource getDataSource() {
		Prop p = PropKit.use("a_little_config.txt");
		C3p0Plugin c3p0Plugin = new C3p0Plugin(p.get("jdbcUrl"), 
												p.get("user"), 
												p.get("password"));
		c3p0Plugin.start();
		return c3p0Plugin.getDataSource();
	}
	
	public static void main(String[] args) {
		// base model
		String baseModelPackageName = "com.wxg.common.model.base";
		String baseModelOutputDir = PathKit.getWebRootPath() 
				+ "/src/main/java/com/wxg/common/model/base";
		
		// MappingKit默认使用的包名
		String modelPackageName = "com.wxg.common.model";
		String modelOutputDir = baseModelOutputDir + "/..";
		
		// 创建生成器
		Generator generator = new Generator( getDataSource(),
				baseModelPackageName, baseModelOutputDir, 
				modelPackageName, modelOutputDir);
		generator.setDialect(new MysqlDialect());
		//添加不需要生成的表名
//		generator.addExcludedTable("");
		// 设置是否在 Model 中生成 dao 对象
		generator.setGenerateDaoInModel(true);
		// 设置是否生成字典文件
		generator.setGenerateDataDictionary(false);
		// 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user"，移除前缀 "osc_"后生成的model名为 "User"而非 OscUser
		generator.setRemovedTableNamePrefixes("sys_");
		// 生成
		generator.generate();
	}
	
	
}
